<?php

namespace System\Loader;

class Alias extends AliasAbstract
{

    /**
     * 获取路径别名
     *
     * @static
     *
     * @access public
     * @param string $name 别名名称
     * @return string 返回处理后的路径
     */
    public function getPath($name)
    {
    if ('@' !== substr($name, 0, 1)) {
        return $name;
    }
    $name = explode('.', $name);
    $name[0] = preg_replace('/\/+/', '.', str_replace('\\', '/', $name[0]));
    $arr = explode('.', $name[0]);
    $alias = [];
    $i = 0;
    foreach ($arr as $part) {
        $alias[] = $part;
        unset($arr[$i++]);
        if (isset($this->pathAliasList[implode('.', $alias)])) {
            if (isset($name[1])) {
                return $this->pathAliasList[implode('.', $alias)] . DS . implode(DS, array_reverse($arr)) . '.' . $name[1];
            } else {
                return $this->pathAliasList[implode('.', $alias)] . DS . implode(DS, array_reverse($arr));
            }
        }
    }
    unset($name, $arr, $alias, $i);
}

    /**
     * 注册路径别名
     *
     * @static
     *
     * @access public
     * @param string $name 别名名称
     * @param string $name 别名路径
     * @return void 没有返回值
     */
    public function registerPath($name, $Path);
}
